package in.rob.client.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; import in.controller.adapter.UserAdapter; import in.controller.handler.UserStreamResponseHandler; import in.data.stream.UserStream; import in.lib.Constants; import in.lib.manager.APIManager; import in.lib.manager.ResponseManager; import in.lib.utils.Views.Injectable; import in.model.AdnModel; import in.model.User; import in.rob.client.ProfileActivity; import in.rob.client.fragment.base.StreamFragment; import lombok.Getter; @Injectable public class SearchUserFragment extends StreamFragment { @Getter private String searchTerm; @Override public void setupAdapter() { setAdapter(new UserAdapter(getContext())); } @Override public void retrieveArguments(Bundle arguments) { super.retrieveArguments(arguments); if (arguments != null && arguments.containsKey(Constants.EXTRA_SEARCH_TERM)) { searchTerm = arguments.getString(Constants.EXTRA_SEARCH_TERM); } } @Override public void fetchStream(String lastId, boolean append) { if (append) { // User search doesn't have pagination return; } UserStreamResponseHandler response = new UserStreamResponseHandler(append); ResponseManager.getInstance().addResponse(getResponseKeys()[0], response, this); APIManager.getInstance().searchUsers(searchTerm, lastId, response); } @Override public void onListItemClick(AdnModel model) { User item = (User)model; Intent profileIntent = new Intent(getContext(), ProfileActivity.class); profileIntent.putExtra(Constants.EXTRA_USER, (Parcelable)item); getActivity().startActivity(profileIntent); } @Override public Class getCacheClass() { return UserStream.class; } @Override public String[] getResponseKeys() { return new String[] { String.format(Constants.RESPONSE_SEARCH_USER, searchTerm) }; } }